package com.facade;

import java.io.Serializable;
import java.util.List;

import com.dao.AssociadoDAO;
import com.model.Associado;

public class AssociadoFacade implements Serializable{
	private static final long serialVersionUID = 1L;
	
	private AssociadoDAO associadoDAO = new AssociadoDAO();

	public void createAssociado(Associado associado) {
		associadoDAO.beginTransaction();
		associadoDAO.save(associado);
		associadoDAO.commitAndCloseTransaction();
	}

	public void updateAssociado(Associado associado) {
		associadoDAO.beginTransaction();
                
//		Associado persistedAssociado = associadoDAO.find(associado.getId());
//		
//		persistedAssociado.setAssociacaos(associado.getAssociacaos());
//		persistedAssociado.setCpf(associado.getCpf());
//		persistedAssociado.setDependenteDoAssociados(associado.getDependenteDoAssociados());
//		persistedAssociado.setEmail(associado.getCpf());
//		persistedAssociado.setEnderecoDoAssociados(associado.getEnderecoDoAssociados());
//		persistedAssociado.setNascimento(associado.getNascimento());
//		persistedAssociado.setNome(associado.getNome());
//		persistedAssociado.setPassaporte(associado.getPassaporte());
//		persistedAssociado.setRg(associado.getRg());
//		persistedAssociado.setSexo(associado.getSexo());
//		persistedAssociado.setTelefoneDoAssociados(associado.getTelefoneDoAssociados());
//		persistedAssociado.setUfRg(associado.getUfRg());
//		
//		associadoDAO.update(persistedAssociado);
                associadoDAO.update(associado);
		associadoDAO.commitAndCloseTransaction();
	}

	public Associado findAssociado(long associadoId) {
		associadoDAO.beginTransaction();
		Associado associado = associadoDAO.find(associadoId);
		associadoDAO.closeTransaction();
		return associado;
	}

	public List<Associado> listAll() {
		associadoDAO.beginTransaction();
		List<Associado> result = associadoDAO.findAll();
		associadoDAO.closeTransaction();
		return result;
	}

	public void deleteAssociado(Associado associado) {
		associadoDAO.beginTransaction();
		Associado persistedAssociado = associadoDAO.findReferenceOnly(associado.getId());
		associadoDAO.delete(persistedAssociado);
		associadoDAO.commitAndCloseTransaction();
	}
}